package com.tf_cut.admin.util;

import sun.misc.BASE64Decoder;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.Base64;
import java.util.UUID;

public class CommUtil {

    /**
     *
     * @param BASE64str bas64字符串
     * @param path 存储地址
     * @param ext 图片后缀
     * @return 存储地址
     */
    public static String BASE64CodeToBeImage(String BASE64str,String path,String ext){
        File fileDir = new File(path);
        if (!fileDir.exists()) {
            fileDir.setWritable(true);
            fileDir.mkdirs();
        }
        //文件名称
        String uploadFileName = UUID.randomUUID().toString() + "."+ext;
        File targetFile = new File(path, uploadFileName);
        BASE64Decoder decoder = new BASE64Decoder();
        try(OutputStream out = new FileOutputStream(targetFile)){
            byte[] b = decoder.decodeBuffer(BASE64str);
            for (int i = 0; i <b.length ; i++) {
                if (b[i] <0) {
                    b[i]+=256;
                }
            }
            out.write(b);
            out.flush();
            return uploadFileName;
        }catch (Exception e){
            e.printStackTrace();
            return null;
        }
    }
    
    
    public static String decryptByBase64(String base64, String filePath,String ext) throws Exception{
    	 File fileDir = new File(filePath);
    	 if (!fileDir.exists()) {
             fileDir.setWritable(true);
             fileDir.mkdirs();
         }
    	 //文件名称
    	 String uploadFileName = UUID.randomUUID().toString() + "."+ext;
    	 File targetFile = new File(filePath, uploadFileName);
    	    byte[] buffer = new BASE64Decoder().decodeBuffer(base64);
    	    FileOutputStream out = new FileOutputStream(targetFile);
    	    out.write(buffer);
    	    out.close();
			return uploadFileName;
    	  }
}
